All Phases and All Groups
df<-read.csv("/Users/jialincheoh/Library/CloudStorage/Box-Box/NSF IronHacks App 2016 - 2019/05 Experiments 2017/01 Hack Spring 2017/01 Summary Spring 2017/02 Data/processed-data/remove_na_overall.csv", header =TRUE, sep=",")
df[is.na(df)] <- 0
log_y <- log10(df$len_match + 1)
log_y
[1] 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
[7] 0.4771213 0.3010300 0.0000000 0.0000000 0.0000000 0.0000000
[13] 0.0000000 0.0000000 0.0000000 0.0000000 0.3010300 0.6989700
[19] 0.3010300 0.0000000 0.0000000 0.4771213 0.0000000 0.0000000
[25] 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
[31] 0.3010300 0.0000000 0.0000000 0.6020600 0.3010300 0.3010300
[37] 0.0000000 0.3010300 0.0000000 0.8450980 0.0000000 0.0000000
[43] 0.4771213 0.6020600 0.6020600 0.0000000 0.0000000 0.0000000
[49] 0.0000000 0.0000000 0.0000000 0.0000000 0.3010300 0.0000000
[55] 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
[61] 0.0000000 0.4771213 0.0000000 0.3010300 0.0000000 0.0000000
[67] 0.0000000 0.0000000 0.0000000 0.0000000 0.3010300 0.0000000
[73] 0.0000000 0.0000000 0.0000000 0.0000000 0.3010300 1.2041200
[79] 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
[85] 0.0000000 0.0000000 0.7781513 0.3010300 0.0000000 0.4771213
[91] 1.0413927 0.0000000 0.0000000 0.6989700 0.0000000 1.7923917
[97] 0.3010300 0.0000000 0.0000000 0.0000000 0.0000000 0.4771213
[103] 0.0000000 0.3010300 0.0000000 0.0000000 0.0000000 0.3010300
[109] 0.6020600 0.0000000 0.0000000 0.0000000 0.0000000 0.3010300
[115] 0.0000000 0.3010300 0.0000000 0.3010300 0.0000000 0.0000000
[121] 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.4771213
[127] 0.0000000 0.0000000 0.0000000 0.0000000 0.3010300 0.0000000
[133] 0.4771213 0.3010300 0.0000000 0.6020600 0.0000000 0.0000000
[139] 0.4771213 0.0000000 0.4771213 0.3010300 0.0000000 0.0000000
[145] 0.0000000 0.0000000 0.4771213 0.0000000 0.0000000 0.0000000
[151] 0.0000000 0.4771213 0.0000000 0.6020600 0.0000000 0.0000000
[157] 0.4771213 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
[163] 0.0000000 0.0000000 0.0000000 0.0000000 0.4771213 0.0000000
[169] 0.6020600 0.0000000 0.0000000 1.0000000 1.0000000 1.0000000
[175] 0.0000000 0.0000000 0.3010300 0.0000000 0.0000000 0.0000000
[181] 0.0000000 0.0000000 0.6020600 0.6989700 0.0000000 0.0000000
[187] 0.0000000 0.3010300 0.0000000 0.0000000 0.0000000 0.0000000
[193] 0.3010300 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
[199] 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.3010300
[205] 0.0000000 0.0000000 0.4771213 0.0000000 0.0000000 0.0000000
[211] 1.0791812 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
[217] 0.3010300 0.3010300 0.0000000 0.0000000 0.0000000 0.3010300
[223] 0.0000000 0.0000000 0.4771213 0.0000000 0.0000000 0.3010300
[229] 0.0000000 0.0000000 0.0000000 1.0413927 0.0000000 0.0000000
[235] 1.3802112 0.0000000 0.0000000 0.3010300 0.0000000 0.0000000
[241] 0.0000000 0.6020600 0.3010300 0.0000000 1.0000000 0.0000000
[247] 0.0000000 0.0000000 0.3010300 0.4771213 1.4623980 0.6989700
[253] 0.3010300 0.0000000 0.3010300 0.0000000 0.0000000 0.0000000
[259] 0.0000000 0.0000000 0.0000000 0.0000000 0.3010300 0.0000000
[265] 0.0000000 0.3010300 0.8450980 0.0000000 0.0000000 0.0000000
[271] 0.0000000 0.0000000 0.0000000 0.4771213 0.4771213 0.0000000
[277] 0.0000000 0.0000000 0.6989700 0.4771213 0.0000000 0.0000000
[283] 0.4771213 0.0000000 0.0000000 0.0000000 0.0000000 0.4771213
[289] 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
[295] 0.0000000 0.0000000 0.0000000 0.3010300 0.0000000 0.0000000
[301] 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
[307] 0.0000000 0.0000000 0.0000000 2.5987905 0.0000000 0.0000000
[313] 0.0000000 0.8450980 0.8450980 0.0000000 0.0000000 0.3010300
[319] 0.3010300 0.0000000 0.0000000 0.0000000 0.0000000 0.3010300
[325] 0.6989700 0.0000000 0.0000000 0.0000000 0.3010300 0.0000000
[331] 0.0000000 0.0000000 0.0000000 0.4771213 0.0000000 0.0000000
[337] 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
[343] 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.4771213
[349] 0.8450980 0.0000000 0.0000000 1.0791812 0.0000000 0.3010300
[355] 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
[361] 0.0000000 0.0000000 0.3010300 0.0000000 0.0000000 1.8750613
[367] 0.0000000 0.0000000 0.6020600 0.0000000 0.0000000 0.0000000
[373] 0.6989700 0.0000000 0.0000000 1.0791812 0.0000000 0.0000000
[379] 0.3010300 0.0000000 0.0000000 0.0000000 0.9542425 0.0000000
[385] 0.0000000 1.0791812 0.3010300 0.0000000 0.0000000 0.0000000
[391] 0.4771213 1.4623980 1.2041200 0.3010300 0.0000000 0.0000000
[397] 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
[403] 0.0000000 0.3010300 0.0000000 0.0000000 0.0000000 1.0413927
[409] 0.0000000 0.0000000 0.4771213 0.0000000 0.0000000 0.0000000
[415] 1.4471580 0.8450980 0.0000000 1.0000000 0.3010300 1.1139434
[421] 0.9542425 0.6020600 1.0413927 1.1461280 0.3010300 0.0000000
[427] 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
[433] 0.0000000 0.0000000 0.0000000 1.0791812 0.4771213 0.0000000
[439] 0.3010300 0.4771213 1.2041200 0.0000000 0.0000000 0.0000000
[445] 0.0000000 0.0000000 0.6989700 0.0000000 0.9030900 0.6020600
[451] 0.0000000 2.7730547 1.7323938 0.3010300 1.2552725 0.3010300
[457] 0.3010300 0.4771213 1.7160033 0.6020600 0.9030900 0.6020600
[463] 0.0000000 0.0000000 0.4771213 0.6020600 3.2427898 0.0000000
[469] 0.0000000 0.0000000 0.3010300 0.0000000 0.0000000 0.0000000
[475] 0.0000000 1.8864907 0.0000000 0.4771213 0.0000000 0.0000000
[481] 0.0000000 0.0000000 0.0000000 1.1461280 0.0000000 0.6989700
[487] 0.0000000 0.0000000 0.0000000 0.0000000 1.6901961 0.9542425
[493] 1.4471580 0.0000000 1.7993405 0.8450980 1.6720979 0.3010300
[499] 0.0000000 0.0000000 0.6020600 1.6627578 0.0000000 0.0000000
[505] 0.0000000 0.4771213 0.0000000 0.0000000 2.0334238 0.0000000
[511] 0.7781513 0.9542425 0.3010300 0.0000000 0.6989700 0.9030900
[517] 0.3010300 0.0000000 1.8129134 0.0000000 0.0000000 0.6020600
[523] 0.0000000 0.0000000 0.0000000 0.8450980 1.1139434 0.0000000
[529] 1.9030900 1.9030900 0.0000000 0.0000000 0.3010300 3.2973227
[535] 1.1139434 1.0791812 3.5954962 3.0464952 0.0000000 0.3010300
[541] 0.0000000 0.0000000 0.6989700 1.4623980 1.0000000 0.0000000
[547] 0.4771213 0.0000000 0.0000000 0.4771213 0.9030900 1.2304489
[553] 2.2253093 0.6989700 0.0000000 0.0000000 1.0413927 1.5440680
[559] 0.9030900 0.3010300 1.0000000 0.6020600 1.4913617 1.2552725
[565] 0.8450980 1.2041200 1.1461280 1.1461280 0.0000000 0.0000000
[571] 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
[577] 0.0000000 0.0000000 1.0791812 1.0000000 0.0000000 1.1461280
[583] 0.6989700 1.2041200 0.6989700 0.0000000 0.0000000 0.0000000
[589] 0.0000000 0.6989700 0.0000000 0.9030900 0.6020600 0.0000000
[595] 2.3541084 0.3010300 1.3424227 4.2882492 4.2882492 1.0791812
[601] 1.7160033 1.0413927 0.9030900 0.7781513 0.3010300 0.6989700
[607] 0.4771213 0.9542425 3.3838154 0.4771213 0.3010300 0.0000000
[613] 1.4313638 0.0000000 0.0000000 1.1139434 0.3010300 1.8864907
[619] 0.0000000 0.4771213 0.4771213 0.0000000 0.0000000 0.0000000
[625] 0.0000000 1.3010300 0.0000000 0.6989700 0.0000000 0.0000000
[631] 0.0000000 0.0000000 1.7853298 0.6989700 1.4471580 0.0000000
[637] 1.7993405 0.8450980 1.6812412 0.3010300 0.0000000 0.0000000
[643] 0.6020600 1.6627578 1.2041200 0.9542425 1.9294189 0.4771213
[649] 0.0000000 0.0000000 1.9395193 0.0000000 1.0413927 1.0791812
[655] 0.3010300 0.4771213 0.6989700 1.2304489 0.3010300 0.0000000
[661] 1.8573325 0.0000000 0.0000000 0.6020600 0.7781513 0.0000000
[667] 0.0000000 1.0000000 1.1139434 0.0000000 0.0000000 2.0453230
[673] 1.9344985 0.0000000 0.0000000 0.6989700 3.2981979 1.1139434
[679] 1.1760913 1.7160033 3.0468852 0.0000000 0.3010300 0.0000000
[685] 0.0000000 0.8450980 1.0413927 1.3010300 0.0000000 0.9030900
[691] 0.4771213 0.0000000 0.4771213 1.0413927 1.2552725 1.4623980
[697] 1.0000000 0.0000000 0.0000000 1.4149733
quantile(df$len_match, 0.2)
20%
0
quantile(log_y, 0.2)
20%
0
#create histogram for original distribution
hist(df0$len_match, col='steelblue', main='Original')

hist(log_y, col='coral2', main='Log Transformed')

Top 10% Rare Functions [ OVERALL CASE ]
df<-read.csv("/Users/jialincheoh/Library/CloudStorage/Box-Box/NSF IronHacks App 2016 - 2019/05 Experiments 2017/01 Hack Spring 2017/01 Summary Spring 2017/02 Data/processed-data/remove_na_overall.csv", header =TRUE, sep=",")
df0 <- df[df$Group == 0, ]
df0[is.na(df0)] <- 0
#log_y <- log10(complete$len_match)
#create histogram for original distribution
#hist(log_y, col='steelblue', main='Original')
log_y <- log10(df0$len_match + 1)
log_y
[1] 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
[7] 0.4771213 0.3010300 0.0000000 0.0000000 0.0000000 0.0000000
[13] 0.0000000 0.0000000 0.0000000 0.0000000 0.3010300 0.6989700
[19] 0.3010300 0.0000000 0.0000000 0.4771213 0.0000000 0.0000000
[25] 0.3010300 0.0000000 0.4771213 0.3010300 0.0000000 0.6020600
[31] 0.0000000 0.0000000 0.4771213 0.0000000 0.4771213 0.3010300
[37] 0.0000000 0.0000000 0.0000000 0.0000000 0.4771213 0.0000000
[43] 0.0000000 0.0000000 0.0000000 0.4771213 0.0000000 0.6020600
[49] 0.0000000 0.0000000 0.4771213 0.0000000 0.0000000 0.0000000
[55] 0.0000000 0.0000000 0.4771213 0.4771213 0.0000000 0.0000000
[61] 0.0000000 0.6989700 0.4771213 0.0000000 0.0000000 0.4771213
[67] 0.0000000 0.0000000 0.0000000 0.0000000 0.4771213 0.0000000
[73] 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
[79] 0.0000000 0.0000000 0.3010300 0.0000000 0.0000000 0.0000000
[85] 0.0000000 0.0000000 1.4471580 0.8450980 0.0000000 1.0000000
[91] 0.3010300 1.1139434 0.9542425 0.6020600 1.0413927 1.1461280
[97] 0.3010300 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
[103] 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0791812
[109] 0.4771213 0.0000000 0.3010300 0.4771213 1.2041200 0.0000000
[115] 0.0000000 0.0000000 1.0413927 1.5440680 0.9030900 0.3010300
[121] 1.0000000 0.6020600 1.4913617 1.2552725 0.8450980 1.2041200
[127] 1.1461280 1.1461280 0.0000000 0.0000000 0.0000000 0.0000000
[133] 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
[139] 1.0791812 1.0000000 0.0000000 1.1461280 0.6989700 1.2041200
[145] 0.6989700 0.0000000 0.0000000 1.4149733
#create histogram for original distribution
hist(df0$len_match, col='steelblue', main='Original')

hist(log_y, col='coral2', main='Log Transformed')

shapiro.test(log_y)
Shapiro-Wilk normality test
data: log_y
W = 0.91338, p-value = 0.0005288
df1 <- df[df$Group == 1, ]
df1[is.na(df1)] <- 0
log_y <- log10(df1$len_match + 1)
log_y
[1] 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
[7] 0.0000000 0.3010300 0.0000000 0.0000000 0.6020600 0.3010300
[13] 0.3010300 0.0000000 0.3010300 0.0000000 0.8450980 0.0000000
[19] 0.0000000 0.4771213 0.6020600 0.6020600 0.0000000 0.0000000
[25] 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.3010300
[31] 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
[37] 0.0000000 0.0000000 0.0000000 0.0000000 0.4771213 0.0000000
[43] 0.6020600 0.0000000 0.0000000 1.0000000 1.0000000 1.0000000
[49] 0.0000000 0.0000000 0.3010300 0.0000000 0.0000000 0.0000000
[55] 0.0000000 0.0000000 0.6020600 0.6989700 0.0000000 0.0000000
[61] 0.0000000 0.3010300 0.0000000 0.0000000 0.0000000 0.0000000
[67] 0.3010300 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
[73] 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
[79] 0.0000000 2.5987905 0.0000000 0.0000000 0.0000000 0.8450980
[85] 0.8450980 0.0000000 0.0000000 0.3010300 0.3010300 0.0000000
[91] 0.0000000 0.0000000 0.0000000 0.3010300 0.6989700 0.0000000
[97] 0.0000000 0.0000000 0.3010300 0.0000000 0.0000000 0.0000000
[103] 0.0000000 0.4771213 0.0000000 0.0000000 0.0000000 0.0000000
[109] 0.0000000 0.0000000 0.0000000 0.6989700 0.0000000 0.9030900
[115] 0.6020600 0.0000000 2.7730547 1.7323938 0.3010300 1.2552725
[121] 0.3010300 0.3010300 0.4771213 1.7160033 0.6020600 0.9030900
[127] 0.6020600 0.0000000 0.0000000 0.4771213 0.6020600 3.2427898
[133] 0.0000000 0.0000000 0.0000000 0.3010300 0.0000000 0.0000000
[139] 0.0000000 0.0000000 1.8864907 0.0000000 0.4771213 0.0000000
[145] 0.0000000 0.0000000 0.0000000 0.0000000 0.6989700 0.0000000
[151] 0.9030900 0.6020600 0.0000000 2.3541084 0.3010300 1.3424227
[157] 4.2882492 4.2882492 1.0791812 1.7160033 1.0413927 0.9030900
[163] 0.7781513 0.3010300 0.6989700 0.4771213 0.9542425 3.3838154
[169] 0.4771213 0.3010300 0.0000000 1.4313638 0.0000000 0.0000000
[175] 1.1139434 0.3010300 1.8864907 0.0000000 0.4771213 0.4771213
#create histogram for original distribution
hist(df1$len_match, col='steelblue', main='Original')

hist(log_y, col='coral2', main='Log Transformed')

shapiro.test(log_y)
Shapiro-Wilk normality test
data: log_y
W = 0.58833, p-value < 2.2e-16
df2 <- df[df$Group == 2, ]
df2[is.na(df2)] <- 0
log_y <- log10(df2$len_match + 1)
log_y
[1] 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.4771213
[7] 0.0000000 0.3010300 0.0000000 0.0000000 0.0000000 0.0000000
[13] 0.0000000 0.0000000 0.3010300 0.0000000 0.0000000 0.0000000
[19] 0.0000000 0.0000000 0.3010300 1.2041200 0.0000000 0.0000000
[25] 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
[31] 0.7781513 0.3010300 0.0000000 0.4771213 1.0413927 0.0000000
[37] 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
[43] 0.0000000 0.3010300 0.0000000 0.0000000 0.4771213 0.0000000
[49] 0.0000000 0.0000000 1.0791812 0.0000000 0.0000000 0.0000000
[55] 0.0000000 0.0000000 0.3010300 0.3010300 0.0000000 0.0000000
[61] 0.0000000 0.3010300 0.0000000 0.0000000 0.4771213 0.0000000
[67] 0.0000000 0.3010300 0.0000000 0.0000000 0.0000000 1.0413927
[73] 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
[79] 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.4771213
[85] 0.8450980 0.0000000 0.0000000 1.0791812 0.0000000 0.3010300
[91] 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
[97] 0.0000000 0.0000000 0.3010300 0.0000000 0.0000000 1.8750613
[103] 0.0000000 0.0000000 0.6020600 0.0000000 0.0000000 0.0000000
[109] 0.6989700 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
[115] 1.1461280 0.0000000 0.6989700 0.0000000 0.0000000 0.0000000
[121] 0.0000000 1.6901961 0.9542425 1.4471580 0.0000000 1.7993405
[127] 0.8450980 1.6720979 0.3010300 0.0000000 0.0000000 0.6020600
[133] 1.6627578 0.0000000 0.0000000 0.0000000 0.4771213 0.0000000
[139] 0.0000000 2.0334238 0.0000000 0.7781513 0.9542425 0.3010300
[145] 0.0000000 0.6989700 0.9030900 0.3010300 0.0000000 0.0000000
[151] 0.0000000 0.0000000 1.3010300 0.0000000 0.6989700 0.0000000
[157] 0.0000000 0.0000000 0.0000000 1.7853298 0.6989700 1.4471580
[163] 0.0000000 1.7993405 0.8450980 1.6812412 0.3010300 0.0000000
[169] 0.0000000 0.6020600 1.6627578 1.2041200 0.9542425 1.9294189
[175] 0.4771213 0.0000000 0.0000000 1.9395193 0.0000000 1.0413927
[181] 1.0791812 0.3010300 0.4771213 0.6989700 1.2304489 0.3010300
#create histogram for original distribution
hist(df2$len_match, col='steelblue', main='Original')

hist(log_y, col='coral2', main='Log Transformed')

shapiro.test(log_y)
Shapiro-Wilk normality test
data: log_y
W = 0.66473, p-value < 2.2e-16
df3 <- df[df$Group == 3, ]
remove <- df3[!is.na(df3$len_match),]
log_y <- log10(remove$len_match)
log_y
[1] 0.6020600 1.7853298 0.0000000 0.3010300 0.0000000 0.0000000 0.4771213
[8] 0.0000000 0.0000000 0.0000000 0.3010300 1.3617278 0.0000000 0.4771213
[15] 0.0000000 0.9542425 0.0000000 0.3010300 1.4471580 0.6020600 0.0000000
[22] 0.0000000 0.0000000 0.0000000 0.7781513 1.0413927 0.0000000 0.9030900
[29] 1.0413927 0.0000000 0.3010300 1.4471580 1.1760913 0.0000000 0.0000000
[36] 1.0000000 0.3010300 1.8061800 0.4771213 0.7781513 1.0791812 1.8976271
[43] 1.8976271 0.0000000 3.2971037 1.0791812 1.0413927 3.5953860 3.0461048
[50] 0.0000000 0.6020600 1.4471580 0.9542425 0.3010300 0.3010300 0.8450980
[57] 1.2041200 2.2227165 0.6020600 1.8512583 0.4771213 0.6989700 0.9542425
[64] 1.0791812 2.0413927 1.9294189 0.6020600 3.2979792 1.0791812 1.1461280
[71] 1.7075702 3.0464952 0.0000000 0.7781513 1.0000000 1.2787536 0.8450980
[78] 0.3010300 0.3010300 1.0000000 1.2304489 1.4471580 0.9542425
#create histogram for original distribution
hist(remove$len_match, col='steelblue', main='Original')

hist(log_y, col='coral2', main='Log Transformed')

shapiro.test(remove$len_match)
Shapiro-Wilk normality test
data: remove$len_match
W = 0.26582, p-value < 2.2e-16
shapiro.test(log_y)
Shapiro-Wilk normality test
data: log_y
W = 0.87183, p-value = 6.468e-07
Non-Repetitive Functions [ OVERALL CASE ]
df<-read.csv("/Users/jialincheoh/Library/CloudStorage/Box-Box/NSF IronHacks App 2016 - 2019/05 Experiments 2017/01 Hack Spring 2017/01 Summary Spring 2017/02 Data/processed-data/overall-2.csv", header =TRUE, sep=",")
df0 <- df[df$Group == 0, ]
df0
remove <- df0[df0$len_unique != 0, ]
removed <- remove[!is.na(remove$len_unique), ]
#log_y <- log10(complete$len_match)
#create histogram for original distribution
#hist(log_y, col='steelblue', main='Original')
log_y <- log10(removed$len_unique)
log_y
[1] 1.3222193 0.6989700 0.6020600 1.6020600 0.8450980 1.6020600
[7] 1.3617278 1.5910646 0.4771213 0.6020600 1.1139434 0.6020600
[13] 0.4771213 1.2552725 1.3222193 2.1038037 1.3979400 0.9030900
[19] 1.0791812 1.2552725 0.8450980 1.4623980 1.5910646 0.4771213
[25] 1.4471580 0.8450980 1.4771213 1.3979400 3.8482507 1.2787536
[31] 1.3802112 1.9030900 1.6232493 1.6127839 1.5440680 1.5910646
[37] 1.6720979 1.6720979 0.6020600 1.0791812 1.2552725 0.8450980
[43] 1.6127839 1.3424227 2.1038037 1.8920946 1.1461280 1.3424227
[49] 1.5051500 1.3010300 1.6020600 1.7781513 1.6127839 1.5563025
[55] 1.5051500 1.3617278 1.4771213 3.3565994 3.8482507 1.4313638
[61] 1.3802112 2.1238516 1.8573325 1.6127839 1.7160033 1.8920946
[67] 1.6720979 1.6901961 0.6020600 1.0791812 1.2552725 0.8450980
[73] 1.8195439 1.4471580 1.1760913 1.9493900 1.8450980 1.5051500
[79] 1.5051500 1.3010300 1.7708520 2.0000000 1.7634280 1.5563025
[85] 1.5051500 1.5563025 2.0253059 3.3598355 3.8482507 1.3222193
[91] 1.4471580 3.4539296 2.1398791 1.9084850 1.8195439 1.7993405
[97] 1.9030900 1.6720979 1.6901961 0.6020600 1.0791812 1.4771213
[103] 0.8450980 1.8195439 1.4471580 1.1760913 1.9493900 1.9395193
[109] 1.6627578 1.5051500 1.5440680 1.7923917 2.1139434 1.7634280
[115] 1.5563025 1.5051500 1.7323938 2.0644580 3.3611610 3.8482507
[121] 3.3598355 1.4913617 3.3639878 2.3222193 1.9030900 1.9542425
[127] 1.8195439 1.9542425 1.6720979 1.6901961 0.6020600 1.0791812
[133] 1.4771213 0.8450980 1.8195439 1.4471580 1.1760913 1.9493900
[139] 1.9395193 1.6627578 1.5051500 1.6532125 1.7923917 2.1172713
[145] 1.8976271 1.5563025 1.5051500 3.3611610
#create histogram for original distribution
hist(removed$len_unique, col='steelblue', main='Original')

hist(log_y, col='coral2', main='Log Transformed')

shapiro.test(removed$len_unique)
Shapiro-Wilk normality test
data: removed$len_unique
W = 0.27893, p-value < 2.2e-16
shapiro.test(log_y)
Shapiro-Wilk normality test
data: log_y
W = 0.85251, p-value = 7.093e-11
df1 <- df[df$Group == 1, ]
remove <- df1[df1$len_unique != 0, ]
removed <- remove[!is.na(remove$len_unique), ]
log_y <- log10(removed$len_unique)
log_y
[1] 1.2304489 0.4771213 0.4771213 0.7781513 0.9542425 1.3222193
[7] 1.5314789 2.0644580 2.0530784 0.6989700 1.8325089 1.6434527
[13] 1.6434527 1.0791812 1.1461280 1.4313638 1.8061800 2.3909351
[19] 0.0000000 1.3617278 0.8450980 1.3424227 2.1335389 0.9542425
[25] 2.1760913 0.4771213 0.6020600 1.4149733 1.0413927 1.6020600
[31] 2.5263393 0.4771213 0.6020600 1.2304489 0.4771213 0.4771213
[37] 0.6020600 1.1760913 0.9542425 3.2886963 1.6532125 1.6127839
[43] 2.1789769 2.0530784 3.3535316 1.9395193 3.4596940 3.4596940
[49] 0.7781513 1.1139434 1.5314789 1.5910646 1.9590414 2.3909351
[55] 0.3010300 1.7242759 0.9542425 4.3677844 2.1367206 1.3979400
[61] 2.1760913 1.2552725 0.4771213 0.6020600 4.9355627 1.6020600
[67] 2.0374265 2.5378191 2.0899051 1.3617278 1.7853298 0.4771213
[73] 1.5563025 0.6020600 1.1760913 0.9542425 3.2886963 1.6989700
[79] 1.6127839 2.8530895 2.0530784 3.3535316 1.9684829 3.4670158
[85] 3.4670158 0.7781513 1.1139434 1.7160033 2.3483049 2.0086002
[91] 2.3909351 0.7781513 1.7323938 1.0000000 4.3677844 2.1367206
[97] 1.6901961 2.1760913 1.2552725 0.8450980 0.6020600 4.9356282
[103] 1.7075702 2.1613680 2.5378191 2.0899051 1.5185139 1.7853298
[109] 0.4771213 1.5563025 0.6020600 1.5314789 0.9542425 3.3016809
[115] 1.8129134 1.6127839 3.4927604 2.2329961 1.2304489 2.1038037
[121] 3.8166389 3.8166389 1.3222193 1.9777236 1.7558749 2.3729120
[127] 2.0718820 2.3765770 0.7781513 1.8325089 1.2552725 4.4254364
[133] 2.1367206 1.7481880 2.1760913 1.5563025 0.9030900 0.6020600
[139] 4.9356282 1.7781513 2.4563660 2.5378191 2.0969100 1.5563025
[145] 1.7853298 0.4771213 1.5563025 0.6020600 1.5314789 0.9542425
[151] 3.3029799 1.8129134 1.6127839 3.4276484 1.3222193 2.1643529
[157] 4.4539754 4.4539754 1.4913617 1.9777236 1.8512583 2.3729120
[163] 2.0899051 2.4014005 1.3979400 1.8325089 1.5682017 4.5190663
[169] 2.0791812 1.7558749 2.1760913 1.8808136 1.7075702 0.6020600
[175] 4.9357138 1.8061800 2.4563660 2.5378191 2.0969100 1.7781513
#create histogram for original distribution
hist(removed$len_unique, col='steelblue', main='Original')

hist(log_y, col='coral2', main='Log Transformed')

shapiro.test(log_y)
Shapiro-Wilk normality test
data: log_y
W = 0.91408, p-value = 9.099e-09
df2 <- df[df$Group == 2, ]
remove <- df2[df2$len_unique != 0, ]
removed <- remove[!is.na(remove$len_unique), ]
log_y <- log10(removed$len_unique)
log_y
[1] 1.2041200 0.6020600 0.6989700 1.7708520 1.0000000 1.9590414
[7] 1.7242759 1.4149733 0.4771213 2.7745170 0.6020600 1.3010300
[13] 1.2787536 0.3010300 1.3010300 1.1760913 1.1760913 0.4771213
[19] 1.3802112 1.1760913 1.5682017 1.6434527 0.8450980 1.1760913
[25] 1.0791812 1.0413927 1.5185139 4.5456287 1.0791812 1.8260748
[31] 1.3010300 1.5051500 1.3222193 0.9542425 2.2174839 0.6989700
[37] 1.2041200 0.6020600 0.6989700 1.7242759 1.0413927 2.0086002
[43] 1.7242759 1.4313638 0.6989700 2.7745170 2.1846914 1.6812412
[49] 1.3802112 0.6989700 3.3600251 1.7558749 1.8061800 0.4771213
[55] 0.9542425 1.6232493 1.5682017 1.7075702 1.2787536 1.1760913
[61] 3.3539162 1.2304489 1.3979400 1.5185139 4.5568932 2.6232493
[67] 1.8260748 1.7781513 1.9242793 1.5440680 3.6850248 2.2671717
[73] 1.3424227 3.3543006 1.0413927 0.6989700 1.7242759 1.2787536
[79] 2.1492191 1.7242759 1.6020600 1.3222193 2.7745170 2.1846914
[85] 1.9084850 1.4313638 0.6989700 3.3654880 1.5314789 2.0413927
[91] 0.4771213 0.9542425 1.6232493 1.6532125 1.8864907 1.2787536
[97] 1.3617278 3.3550682 1.2304489 1.5314789 1.5185139 4.5679904
[103] 2.6354837 1.8573325 1.9542425 1.9138139 1.6627578 3.6866363
[109] 2.2855573 1.4471580 3.3543006 1.0413927 0.6989700 1.7708520
[115] 1.8633229 1.2787536 2.3074960 1.7242759 1.6020600 1.3222193
[121] 2.7752463 2.4082400 2.2671717 1.9590414 0.6989700 3.3756636
[127] 1.9542425 2.2648178 1.1461280 1.7708520 1.6232493 1.7075702
[133] 2.2405492 1.2787536 1.3222193 3.3552599 1.3010300 1.3979400
[139] 1.5185139 4.5690929 2.6354837 1.9731279 2.0000000 1.9294189
[145] 1.6627578 3.6868150 2.3598355 1.4471580 3.3543006 1.0413927
[151] 0.6989700 1.7708520 1.9444827 1.2787536 2.3074960 1.7242759
[157] 1.6020600 1.5563025 2.7752463 2.4668676 2.2430380 1.9344985
[163] 0.6989700 3.3756636 1.8808136 2.2695129 1.4313638 1.8061800
[169] 1.6232493 1.7075702 2.2405492 1.6434527 1.6232493 3.6200319
[175] 1.3010300 1.3979400 1.5185139 4.0708134 2.6354837 3.3690302
[181] 2.1038037 1.9294189 1.7323938 3.6868150 2.6655810 1.4471580
#create histogram for original distribution
hist(removed$len_unique, col='steelblue', main='Original')

hist(log_y, col='coral2', main='Log Transformed')

shapiro.test(log_y)
Shapiro-Wilk normality test
data: log_y
W = 0.91342, p-value = 5.31e-09
df3 <- df[df$Group == 3, ]
remove <- df3[df3$len_unique != 0, ]
removed <- remove[!is.na(remove$len_unique), ]
log_y <- log10(removed$len_unique)
log_y
[1] 0.9030900 1.2041200 1.2041200 2.0530784 4.8564812 1.2787536
[7] 1.7634280 1.5185139 1.2041200 0.7781513 0.0000000 1.1461280
[13] 1.3424227 1.4771213 0.8450980 1.3222193 1.6627578 0.9542425
[19] 1.0791812 1.0000000 1.3010300 1.8388491 1.3802112 0.9542425
[25] 1.9822712 1.4149733 4.5958708 1.5314789 1.5051500 0.3010300
[31] 1.2552725 0.6989700 1.3010300 1.4313638 2.0863598 1.3010300
[37] 1.5185139 1.1760913 2.1271048 1.6334685 3.3136563 4.8565295
[43] 1.5910646 1.7558749 2.5550944 1.7993405 1.6334685 0.8450980
[49] 1.7403627 1.5314789 0.7781513 0.8450980 1.2787536 1.6901961
[55] 2.0530784 1.6532125 1.6020600 1.3010300 1.8388491 1.2041200
[61] 1.3424227 1.9822712 1.6334685 4.5958708 1.7242759 1.7160033
[67] 0.6020600 1.4623980 0.6989700 1.4913617 1.6020600 1.1139434
[73] 1.3010300 1.5910646 1.1760913 3.3974185 1.7160033 3.3136563
[79] 4.8565295 2.0211893 1.7558749 2.5550944 1.9242793 1.7923917
[85] 0.8450980 2.1398791 1.6334685 0.7781513 0.8450980 2.3979400
[91] 1.6812412 2.1003705 1.9242793 1.6020600 1.7923917 1.7634280
[97] 1.2041200 1.3424227 2.0334238 1.7708520 4.5960360 1.7242759
[103] 1.7323938 0.6020600 1.4623980 0.6989700 1.6020600 1.6434527
[109] 1.2304489 1.3010300 1.9777236 1.4149733 3.4087486 1.7160033
[115] 3.3136563 4.8565537 2.0211893 1.7481880 2.5587086 1.9242793
[121] 1.9493900 0.8450980 2.4533183 2.2479733 1.4623980 0.8450980
[127] 2.4099331 4.0363494 2.5010593 1.9344985 3.6976652 3.2676410
[133] 1.7634280 1.2304489 1.3424227 2.0334238 1.8692317 4.5966191
[139] 1.8808136 1.7323938 1.3222193 1.4913617 0.6989700 1.6434527
[145] 1.5910646 1.8195439 2.8312297 2.2201081 1.4149733 3.4094259
[151] 1.7160033 3.3136563 4.8565537 3.3688445 1.7481880 2.5587086
[157] 1.9493900 1.9444827 0.8450980 1.1461280 2.5024271 2.2576786
[163] 1.4771213 0.8450980 2.4329693 4.0368284 2.4996871 2.1643529
[169] 2.2068259 3.2662317 1.7634280 1.2304489 1.3424227 2.0334238
[175] 1.8864907 4.5962671 2.0000000 1.7242759 1.8061800 1.6020600
[181] 0.6989700 1.7558749 1.6232493 1.8750613 2.1238516 2.2576786
#create histogram for original distribution
hist(removed$len_unique, col='steelblue', main='Original')

hist(log_y, col='coral2', main='Log Transformed')

shapiro.test(log_y)
Shapiro-Wilk normality test
data: log_y
W = 0.85276, p-value = 1.992e-12
LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKIyBBbGwgUGhhc2VzIGFuZCBBbGwgR3JvdXBzIAoKYGBge3J9CmRmPC1yZWFkLmNzdigiL1VzZXJzL2ppYWxpbmNoZW9oL0xpYnJhcnkvQ2xvdWRTdG9yYWdlL0JveC1Cb3gvTlNGIElyb25IYWNrcyBBcHAgMjAxNiAtIDIwMTkvMDUgRXhwZXJpbWVudHMgMjAxNy8wMSBIYWNrIFNwcmluZyAyMDE3LzAxIFN1bW1hcnkgU3ByaW5nIDIwMTcvMDIgRGF0YS9wcm9jZXNzZWQtZGF0YS9yZW1vdmVfbmFfb3ZlcmFsbC5jc3YiLCBoZWFkZXIgPVRSVUUsIHNlcD0iLCIpCmRmW2lzLm5hKGRmKV0gPC0gMApsb2dfeSA8LSBsb2cxMChkZiRsZW5fbWF0Y2ggKyAxKQpsb2dfeQpgYGAKCmBgYHtyfQpxdWFudGlsZShkZiRsZW5fbWF0Y2gsIDAuMikKYGBgCgpgYGB7cn0KZm9yICh4IGluIDAuMDU6MTowLjA1KXsKICBxdWFudGlsZShsb2dfeSwgMC4yKQp9CmBgYAoKCmBgYHtyfQojY3JlYXRlIGhpc3RvZ3JhbSBmb3Igb3JpZ2luYWwgZGlzdHJpYnV0aW9uCmhpc3QoZGYwJGxlbl9tYXRjaCwgY29sPSdzdGVlbGJsdWUnLCBtYWluPSdPcmlnaW5hbCcpCmBgYApgYGB7cn0KaGlzdChsb2dfeSwgY29sPSdjb3JhbDInLCBtYWluPSdMb2cgVHJhbnNmb3JtZWQnKQpgYGAKCgojIFRvcCAxMCUgUmFyZSBGdW5jdGlvbnMgWyBPVkVSQUxMIENBU0UgXQoKYGBge3J9CmRmMCA8LSBkZltkZiRHcm91cCA9PSAwLCBdIApkZjBbaXMubmEoZGYwKV0gPC0gMApgYGAKCmBgYHtyfQojbG9nX3kgPC0gbG9nMTAoY29tcGxldGUkbGVuX21hdGNoKQojY3JlYXRlIGhpc3RvZ3JhbSBmb3Igb3JpZ2luYWwgZGlzdHJpYnV0aW9uCiNoaXN0KGxvZ195LCBjb2w9J3N0ZWVsYmx1ZScsIG1haW49J09yaWdpbmFsJykKbG9nX3kgPC0gbG9nMTAoZGYwJGxlbl9tYXRjaCArIDEpCmxvZ195CmBgYAoKYGBge3J9CiNjcmVhdGUgaGlzdG9ncmFtIGZvciBvcmlnaW5hbCBkaXN0cmlidXRpb24KaGlzdChkZjAkbGVuX21hdGNoLCBjb2w9J3N0ZWVsYmx1ZScsIG1haW49J09yaWdpbmFsJykKYGBgCgoKYGBge3J9Cmhpc3QobG9nX3ksIGNvbD0nY29yYWwyJywgbWFpbj0nTG9nIFRyYW5zZm9ybWVkJykKYGBgCmBgYHtyfQpzaGFwaXJvLnRlc3QobG9nX3kpCmBgYAoKYGBge3J9CmRmMSA8LSBkZltkZiRHcm91cCA9PSAxLCBdIApkZjFbaXMubmEoZGYxKV0gPC0gMApsb2dfeSA8LSBsb2cxMChkZjEkbGVuX21hdGNoICsgMSkKbG9nX3kKYGBgCgpgYGB7cn0KI2NyZWF0ZSBoaXN0b2dyYW0gZm9yIG9yaWdpbmFsIGRpc3RyaWJ1dGlvbgpoaXN0KGRmMSRsZW5fbWF0Y2gsIGNvbD0nc3RlZWxibHVlJywgbWFpbj0nT3JpZ2luYWwnKQpgYGAKYGBge3J9Cmhpc3QobG9nX3ksIGNvbD0nY29yYWwyJywgbWFpbj0nTG9nIFRyYW5zZm9ybWVkJykKYGBgCmBgYHtyfQpzaGFwaXJvLnRlc3QobG9nX3kpCmBgYAoKYGBge3J9CmRmMiA8LSBkZltkZiRHcm91cCA9PSAyLCBdIApkZjJbaXMubmEoZGYyKV0gPC0gMApsb2dfeSA8LSBsb2cxMChkZjIkbGVuX21hdGNoICsgMSkKbG9nX3kKYGBgCgpgYGB7cn0KI2NyZWF0ZSBoaXN0b2dyYW0gZm9yIG9yaWdpbmFsIGRpc3RyaWJ1dGlvbgpoaXN0KGRmMiRsZW5fbWF0Y2gsIGNvbD0nc3RlZWxibHVlJywgbWFpbj0nT3JpZ2luYWwnKQpgYGAKCmBgYHtyfQpoaXN0KGxvZ195LCBjb2w9J2NvcmFsMicsIG1haW49J0xvZyBUcmFuc2Zvcm1lZCcpCmBgYApgYGB7cn0Kc2hhcGlyby50ZXN0KGxvZ195KQpgYGAKCmBgYHtyfQpkZjMgPC0gZGZbZGYkR3JvdXAgPT0gMywgXSAKZGYzW2lzLm5hKGRmMyldIDwtIDAKbG9nX3kgPC0gbG9nMTAocmVtb3ZlJGxlbl9tYXRjaCkKbG9nX3kKYGBgCmBgYHtyfQojY3JlYXRlIGhpc3RvZ3JhbSBmb3Igb3JpZ2luYWwgZGlzdHJpYnV0aW9uCmhpc3QocmVtb3ZlJGxlbl9tYXRjaCwgY29sPSdzdGVlbGJsdWUnLCBtYWluPSdPcmlnaW5hbCcpCmBgYApgYGB7cn0KaGlzdChsb2dfeSwgY29sPSdjb3JhbDInLCBtYWluPSdMb2cgVHJhbnNmb3JtZWQnKQpgYGAKYGBge3J9CnNoYXBpcm8udGVzdChyZW1vdmUkbGVuX21hdGNoKQpgYGAKCgpgYGB7cn0Kc2hhcGlyby50ZXN0KGxvZ195KQpgYGAKCiMgTm9uLVJlcGV0aXRpdmUgRnVuY3Rpb25zIFsgT1ZFUkFMTCBDQVNFIF0KYGBge3J9CmRmPC1yZWFkLmNzdigiL1VzZXJzL2ppYWxpbmNoZW9oL0xpYnJhcnkvQ2xvdWRTdG9yYWdlL0JveC1Cb3gvTlNGIElyb25IYWNrcyBBcHAgMjAxNiAtIDIwMTkvMDUgRXhwZXJpbWVudHMgMjAxNy8wMSBIYWNrIFNwcmluZyAyMDE3LzAxIFN1bW1hcnkgU3ByaW5nIDIwMTcvMDIgRGF0YS9wcm9jZXNzZWQtZGF0YS9vdmVyYWxsLTIuY3N2IiwgaGVhZGVyID1UUlVFLCBzZXA9IiwiKQpkZjAgPC0gZGZbZGYkR3JvdXAgPT0gMCwgXSAKZGYwCmBgYAoKYGBge3J9CnJlbW92ZSA8LSBkZjBbZGYwJGxlbl91bmlxdWUgIT0gMCwgXQpyZW1vdmVkIDwtIHJlbW92ZVshaXMubmEocmVtb3ZlJGxlbl91bmlxdWUpLCBdCiNsb2dfeSA8LSBsb2cxMChjb21wbGV0ZSRsZW5fbWF0Y2gpCiNjcmVhdGUgaGlzdG9ncmFtIGZvciBvcmlnaW5hbCBkaXN0cmlidXRpb24KI2hpc3QobG9nX3ksIGNvbD0nc3RlZWxibHVlJywgbWFpbj0nT3JpZ2luYWwnKQpsb2dfeSA8LSBsb2cxMChyZW1vdmVkJGxlbl91bmlxdWUpCmxvZ195CmBgYApgYGB7cn0KI2NyZWF0ZSBoaXN0b2dyYW0gZm9yIG9yaWdpbmFsIGRpc3RyaWJ1dGlvbgpoaXN0KHJlbW92ZWQkbGVuX3VuaXF1ZSwgY29sPSdzdGVlbGJsdWUnLCBtYWluPSdPcmlnaW5hbCcpCmBgYApgYGB7cn0KaGlzdChsb2dfeSwgY29sPSdjb3JhbDInLCBtYWluPSdMb2cgVHJhbnNmb3JtZWQnKQpgYGAKYGBge3J9CnNoYXBpcm8udGVzdChyZW1vdmVkJGxlbl91bmlxdWUpCmBgYAoKCmBgYHtyfQpzaGFwaXJvLnRlc3QobG9nX3kpCmBgYAoKYGBge3J9CmRmMSA8LSBkZltkZiRHcm91cCA9PSAxLCBdIApyZW1vdmUgPC0gZGYxW2RmMSRsZW5fdW5pcXVlICE9IDAsIF0KcmVtb3ZlZCA8LSByZW1vdmVbIWlzLm5hKHJlbW92ZSRsZW5fdW5pcXVlKSwgXQpsb2dfeSA8LSBsb2cxMChyZW1vdmVkJGxlbl91bmlxdWUpCmxvZ195CmBgYApgYGB7cn0KI2NyZWF0ZSBoaXN0b2dyYW0gZm9yIG9yaWdpbmFsIGRpc3RyaWJ1dGlvbgpoaXN0KHJlbW92ZWQkbGVuX3VuaXF1ZSwgY29sPSdzdGVlbGJsdWUnLCBtYWluPSdPcmlnaW5hbCcpCmBgYApgYGB7cn0KaGlzdChsb2dfeSwgY29sPSdjb3JhbDInLCBtYWluPSdMb2cgVHJhbnNmb3JtZWQnKQpgYGAKYGBge3J9CnNoYXBpcm8udGVzdChsb2dfeSkKYGBgCgpgYGB7cn0KZGYyIDwtIGRmW2RmJEdyb3VwID09IDIsIF0gCnJlbW92ZSA8LSBkZjJbZGYyJGxlbl91bmlxdWUgIT0gMCwgXQpyZW1vdmVkIDwtIHJlbW92ZVshaXMubmEocmVtb3ZlJGxlbl91bmlxdWUpLCBdCmxvZ195IDwtIGxvZzEwKHJlbW92ZWQkbGVuX3VuaXF1ZSkKbG9nX3kKYGBgCmBgYHtyfQojY3JlYXRlIGhpc3RvZ3JhbSBmb3Igb3JpZ2luYWwgZGlzdHJpYnV0aW9uCmhpc3QocmVtb3ZlZCRsZW5fdW5pcXVlLCBjb2w9J3N0ZWVsYmx1ZScsIG1haW49J09yaWdpbmFsJykKYGBgCmBgYHtyfQpoaXN0KGxvZ195LCBjb2w9J2NvcmFsMicsIG1haW49J0xvZyBUcmFuc2Zvcm1lZCcpCmBgYApgYGB7cn0Kc2hhcGlyby50ZXN0KGxvZ195KQpgYGAKCmBgYHtyfQpkZjMgPC0gZGZbZGYkR3JvdXAgPT0gMywgXSAKcmVtb3ZlIDwtIGRmM1tkZjMkbGVuX3VuaXF1ZSAhPSAwLCBdCnJlbW92ZWQgPC0gcmVtb3ZlWyFpcy5uYShyZW1vdmUkbGVuX3VuaXF1ZSksIF0KbG9nX3kgPC0gbG9nMTAocmVtb3ZlZCRsZW5fdW5pcXVlKQpsb2dfeQpgYGAKYGBge3J9CiNjcmVhdGUgaGlzdG9ncmFtIGZvciBvcmlnaW5hbCBkaXN0cmlidXRpb24KaGlzdChyZW1vdmVkJGxlbl91bmlxdWUsIGNvbD0nc3RlZWxibHVlJywgbWFpbj0nT3JpZ2luYWwnKQpgYGAKYGBge3J9Cmhpc3QobG9nX3ksIGNvbD0nY29yYWwyJywgbWFpbj0nTG9nIFRyYW5zZm9ybWVkJykKYGBgCmBgYHtyfQpzaGFwaXJvLnRlc3QobG9nX3kpCmBgYAoK